home *** CD-ROM | disk | FTP | other *** search
/ The X-Philes (2nd Revision) / The X-Philes Number 1 (1995).iso / xphiles / hp48_2 / flight_c < prev    next >
Internet Message Format  |  1995-03-31  |  36KB

  1. From comp.sys.handhelds Sun Jun  9 13:41:48 1991
  2. Path: seq!ecsgate!mcnc!gatech!usenet.ins.cwru.edu!magnus.acs.ohio-state.edu!zaphod.mps.ohio-state.edu!mips!ptimtc!nntp-server.caltech.edu!anderson
  3. From: anderson@truebalt.caltech.edu (Eric R. Anderson)
  4. Newsgroups: comp.sys.handhelds
  5. Subject: HP48: Aviation/Flight Planning programs
  6. Message-ID: <1991Jun6.074057.13835@nntp-server.caltech.edu>
  7. Date: 6 Jun 91 07:40:57 GMT
  8. Sender: anderson@nntp-server.caltech.edu (Eric R. Anderson)
  9. Reply-To: eanderso@caltech.bitnet.edu
  10. Organization: California Institute of Technology, Pasadena
  11. Lines: 985
  12.  
  13.  
  14.    What follows is a group of programs making up an electronic flight
  15. computer of sorts.  The flight computer is made up of 6 functions:
  16.  
  17.       Weight and Balance with 9 plane memory and CG graphing
  18.       Flight plan of up to eight legs
  19.       Winds aloft calculation
  20.       Density altitude
  21.       Distance and heading between two points
  22.       Crosswind components
  23.  
  24. Each will be described more fully later.  These functions can be accessed
  25. either alone, or by selecting from a menu presented by running START.
  26. There is a minimal amount of error checking in the programs, but if run
  27. from the START menu, the stack will be cleaned up if an error does occur.
  28. If flag 10 is set, the output of some of the program is changed to metric.
  29. Units are allowed (even encouraged) unless noted below, and appropriate 
  30. conversions made.  Extensive use is made of PGROB and UPGROB from Erik Bryntse,
  31. and they are included in the directory.  The last four functions could be done
  32. much more compactly with the equation solver, but the programs provide a front
  33. end for things.  The CST menu is also defined for conversions between fuel
  34. volume and weight (at 6lbs/gal).
  35.    The whole thing is rather large, and to download on my 30K calculator
  36. requires removing everthing but ASC-> and ->ASC.  ASC-> is required to unpack
  37. the directory.  When I download it, everything goes fine until the last packet
  38. or two, when the calculator quits responding.  Both Kermits eventually time out,
  39. and the directory is present and whole on the calculator.  I'm not sure if this
  40. is just my calculator, or what.  If it happens, just be patient.  Once
  41. downloaded, press AERO to get into the directory, then SETUP to unpack it.
  42. Press START to begin.
  43.  
  44.                              Notes:
  45.  
  46. FPLAN, WIND, and CWIND use vector arithmetic, so beware if you have a
  47. version with the vector bug.  The checksums are:
  48.  
  49.  Before unpacking: #11040d
  50.                    23664.5
  51.  
  52.  After unpacking:  # 5241d
  53.                    17881.5
  54.  
  55. Disclaimer:  Use at your own risk.  Feel free to redistribute in whole
  56. or in part if it strikes your fancy.  If you want to make improvements, go
  57. ahead - I'm graduating in a week and a half, and losing net access, so I can't
  58. post any I make.
  59.  
  60.                              Program Descriptions:
  61.  
  62.   The primary programs are described in the order they appear in the VAR menu.
  63. Since the directory is rather large, I have included a list of programs
  64. that call each program, so if you decide you don't want one of the functions,
  65. you can delete all the programs that only it calls.  To save memory, I run
  66. without START and HELP, which saves about 5K.  I apologise if the descriptions
  67. are a little cryptic.  The program follows the descriptions.
  68.  
  69. START:  Called by: None
  70.         Use the arrow keys to move around, and ENTER to select choice.
  71.         Press any key to return to menu after program execution.
  72. HELP:   Called by: START, self executable
  73.         Presents three short help screens.
  74. FPLAN:  Called by: START, self executable
  75.         Computes magnetic heading, groundspeed, time en route, and fuel
  76.         burn for up to eight legs of a flight.  If units are entered for
  77.         distance or fuel consumption rate on the first leg, units must be
  78.         entered for each remaining leg.  Time is shown in Hours:minutes
  79.         format.
  80. W&B:    Called by: START, self executable
  81.         Compute weight and balance for selected aircraft, and plots weight
  82.         vs moment arm if graph is defined for aircraft.  Output is metric
  83.         if flag 10 is set.  If a graph has been defined for the plane chosen,
  84.         flag 10 must be set so the output matches the units used in defining
  85.         the graph for the graph to be valid.  Choose ADD/DELETE to add a new
  86.         plane or delete an old one.  When adding a plane, select 0 for the
  87.         number of points in the graph to save memory.  If you want to define
  88.         a graph, select a number of points equal to the number of line
  89.         segments in the graph + 1.  A line will be drawn from each point to the
  90.         next point entered.  Points are entered in the form (without units)
  91.         { moment/1000 weight }.  When asked for a station name, keep in
  92.         mind that W&B will append "weight and moment arm" after the name
  93.         you supply.
  94. WIND:   Called by: START, self executable
  95.         Calculates winds aloft from true course, ground speed, true heading
  96.         and true airspeed.
  97. DALT:   Called by: START, self executable
  98.         Calculates density altitude from pressure altitude and temperature.
  99.         Valid only for altitudes less than 36000 ft.
  100. DISTANCE: Called by: START, self executable
  101.         Calculates distance and true heading between two points of
  102.         latitude and longitude entered in hhh.mmss form.  Points in
  103.         the southern or eastern hemisphere may need to be entered as
  104.         negative.  The program has only been tested for points N and W.
  105. CWIND:  Called by: START, self executable
  106.         Given a heading and wind speed and direction, calculates headwind
  107.         and crosswind components.  Does not support units - units of
  108.         components are same as of wind speed.
  109. PAUSE:  Called by: START
  110. TRAP:   Called by: START
  111. MAKEMENU: Called by: none
  112.         Utility to make a menu for use with CHOOSE.
  113. ADDPLANE: Called by: W&B
  114. STRIP:  Called by: START, FPLAN
  115. PAD:    Called by: START
  116. CHOOSE: Called by: START, W&B, ADDPLANE
  117.         Call with initial cursor position in stack level 2, and the menu grob
  118.         in level 1.  Returns cursor postion when ENTER is pressed.
  119. ADDGRAPH: Called by: ADDPLANE
  120. SCL:    Called by: ADDGRAPH, CGGRAPH
  121. WBIN:   Called by: W&B
  122. CGGRAPH: Called by: W&B
  123. PGROB, UPGROB: Called by: HELP,CHOOSE, ADDPLANE, CGGRAPH, ADDGRAPH, FPLAN
  124. PLANES: Called by W&B, ADDPLANE
  125.         Stores the list of planes for use by W&B. Each plane list has the format
  126.         { { CGgraph maxmoment minmoment maxweight minweight }
  127.           { { station1name station1weight station1arm }
  128.             { station2name station2weight station2arm }
  129.                                 .
  130.                                 .
  131.                                 .
  132.             { stationNname stationNweight stationNarm } }
  133.           "Plane name"
  134.         }
  135. FPLAN.GROB: Called by: FPLAN
  136. HELP.{123}: Called by: HELP
  137. STMENU: Called by: START
  138. WBMENU: Called by: W&B, ADDPLANE
  139. CURSOR: Called by: CHOOSE
  140. UNITMENU: Called by: W&B, ADDPLANE
  141. PLMENU: Called by: ADDPLANE
  142. DESCMENU: Called by: ADDPLANE
  143. Gal: Called by: W&B, FPLAN, ADDPLANE, CST    (Defines 1 Gallon = 6 lbs)
  144. L: Called by: W&B, FPLAN, ADDPLANE, CST
  145. CST: Called by: None
  146.  
  147. ----------Cut here ---------
  148. %%HP: T(3)A(R)F(.);
  149. DIR
  150.   SETUP
  151.     \<<
  152.       IF 'ASC\->' VTYPE -1 ==
  153.       THEN
  154.         "ASC\-> must be in this\010 or higher directory"
  155.         DOERR
  156.       END
  157.       CURSOR ASC\-> 'CURSOR' STO
  158.       PGROB ASC\-> 'PGROB' STO
  159.       UPGROB ASC\-> 'UPGROB' STO
  160.       FPLAN.GROB ASC\-> 'FPLAN.GROB' STO
  161.       HELP.3 ASC\-> 'HELP.3' STO
  162.       HELP.2 ASC\-> 'HELP.2' STO
  163.       HELP.1 ASC\-> 'HELP.1' STO
  164.       STMENU ASC\-> 'STMENU' STO
  165.       WBMENU ASC\-> 'WBMENU' STO
  166.       MEM DROP
  167.       PLANES ASC\-> 'PLANES' STO
  168.       'SETUP' PURGE
  169.     \>>
  170.   START.
  171.     \<< RCLF DEPTH 'STRT.DPTH' STO
  172.         IFERR
  173.           1
  174.           DO
  175.             STMENU CHOOSE
  176.             {
  177.           \<<
  178.             IF 'W&B' TRAP
  179.             THEN
  180.               DUP2 CLLCD "        Weight" 1 DISP
  181.               SWAP DTAG \->STR DUP "_" POS " " REPL "'" STRIP PAD 3 DISP
  182.               "      Moment Arm" 5 DISP
  183.               DTAG \->STR DUP "_" POS " " REPL "'" STRIP PAD 7 DISP
  184.               { } TMENU TEXT PAUSE
  185.             END
  186.             1 0
  187.           \>>
  188.           \<< 'FPLAN' TRAP DROP 2 0 \>>
  189.           \<<
  190.             IF 'WIND' TRAP
  191.             THEN
  192.               DUP2 CLLCD "   Winds Aloft From" 1 DISP
  193.               SWAP DTAG \->STR PAD 3 DISP
  194.               "          At" 5 DISP DTAG
  195.               IF DUP TYPE 13 ==
  196.               THEN \->STR "'" STRIP DUP "_" POS " " REPL
  197.               ELSE \->STR
  198.               END
  199.               PAD 7 DISP
  200.               { } TMENU PAUSE
  201.             END
  202.             3 0
  203.           \>>
  204.           \<<
  205.             IF 'DALT' TRAP
  206.             THEN
  207.               CLLCD DUP "   Density Altitude:" 4 DISP
  208.               DTAG \->STR DUP "_" POS " " REPL "'" STRIP PAD 6 DISP
  209.               { } TMENU PAUSE
  210.             END
  211.             4 0
  212.           \>>
  213.           \<<
  214.             IF 'DISTANCE' TRAP
  215.             THEN
  216.               CLLCD DUP2 "     True Heading" 5 DISP
  217.               DTAG \->STR PAD 7 DISP
  218.               "       Distance" 1 DISP
  219.               DTAG \->STR DUP "_" POS " " REPL "'" STRIP PAD 3 DISP
  220.               { } TMENU PAUSE
  221.             END
  222.             5 0
  223.           \>>
  224.           \<<
  225.             IF 'CWIND' TRAP
  226.             THEN
  227.               DUP2 CLLCD
  228.               DUP \->STR 1 " " REPL DUP ":" POS 1 - 1 SWAP SUB PAD 5 DISP
  229.               DTAG \->STR PAD 7 DISP
  230.               DUP \->STR 1 " " REPL DUP ":" POS 1 - 1 SWAP SUB " Crosswind" +
  231.               PAD 1 DISP
  232.               DTAG \->STR PAD 3 DISP
  233.               { } TMENU PAUSE
  234.             END
  235.             6 0
  236.           \>>
  237.           { 7 0 }
  238.           { 8 0 }
  239.           \<< HELP 9 0 \>>
  240.           { 1 }
  241.             }
  242.             SWAP GET EVAL
  243.           UNTIL
  244.           END
  245.         THEN
  246.         END
  247.         2 MENU CLLCD
  248.         DEPTH STRT.DPTH - DROPN
  249.         STOF 'STRT.DPTH' PURGE
  250.     \>>
  251.   HELP
  252.     \<<
  253.       IFERR
  254.         PICT { # 0d # 0d } HELP.1 UPGROB REPL
  255.         { # 0d # 0d } PVIEW
  256.         0 WAIT DROP
  257.         PICT { # 0d # 0d } HELP.2 UPGROB REPL
  258.         0 WAIT DROP
  259.         PICT { # 0d # 0d } HELP.3 UPGROB REPL
  260.         0 WAIT DROP
  261.       THEN DROP
  262.       END
  263.     \>>
  264.   FPLAN
  265. \<<
  266.    RCLF -15 CF -16 SF DEG STD
  267.    PICT  { # 0d # 0d } FPLAN.GROB UPGROB REPL
  268.    ":Course: \010:Distance: " ":Variation: " ":TAS: "
  269.    ":WD: \010:WS: " ":FCR: "    1 0 0 0
  270.    \->
  271.    tcdef vardef tasdef winddef fcrdef speedunit totdist tottime totfuel
  272.   \<<
  273.     1
  274.     DO
  275.       "Enter number of legs,\010maximum 8" "" INPUT OBJ\->
  276.       IF DUP 9 < THEN 1 ELSE DROP 1400 .08 BEEP 0 END
  277.     UNTIL
  278.     END
  279.     FOR j
  280.      { { "mi" "_mi" } { "nmi" "_nmi" } "" "" "" { "km" "_km" } } TMENU
  281.      "Leg X: Enter TRUE\010course and distance" 5 j \->STR REPL
  282.      tcdef -10 2 \->LIST INPUT
  283.      DUP 'tcdef' STO OBJ\-> DTAG SWAP DTAG SWAP
  284.      { { "W" "_W" } "" "" "" "" { "E" "_E" } } TMENU
  285.      "Leg X: Enter Variation\010(- or W , + or E)" 5 j \->STR REPL
  286.      vardef -13 2 \->LIST INPUT
  287.      DUP 'vardef' STO OBJ\-> DTAG
  288.      { { "mph" "_mph" } { "knot" "_knot" } "" "" "" { "kph" "_kph" } } TMENU
  289.      "Leg X: Enter True\010Airspeed" 5 j \->STR REPL
  290.      tasdef -7 2 \->LIST INPUT
  291.      DUP 'tasdef' STO OBJ\-> DTAG
  292.      IF DUP TYPE 13 == THEN DUP 'speedunit' STO UVAL END
  293.      "Leg X: Enter Wind\010Direction and Speed" 5 j \->STR REPL
  294.      winddef -6 2 \->LIST INPUT
  295.      DUP 'winddef' STO OBJ\-> DTAG
  296.      IF DUP TYPE 13 ==
  297.      THEN
  298.        IF speedunit TYPE 13 ==
  299.        THEN speedunit CONVERT UVAL
  300.        ELSE DUP 'speedunit' STO UVAL
  301.        END
  302.      END
  303.      SWAP 180 + \->V2
  304.      { { "gph" "_Gal/h" } { "lb/h" "_lb/h" } ""
  305.        "" { "L/h" "_L/h" } { "kg/h" "_kg/h" } } TMENU
  306.      "Leg X: Enter rate of\010fuel consumption" 5 j \->STR REPL
  307.      fcrdef -7 2 \->LIST INPUT
  308.      DUP 'fcrdef' STO OBJ\->
  309.      6 ROLLD DUP 6 PICK 90 + 1 SWAP \->V2 DOT NEG 3 PICK / ASIN 6 PICK +
  310.      DUP 4 ROLL SWAP \->V2 ROT +
  311.      1 6 PICK \->V2 DOT
  312.      IF speedunit TYPE 13 == THEN speedunit \->UNIT END
  313.      SWAP ROT
  314.      IF DUP TYPE 13 ==
  315.      THEN
  316.        IF DUP \->STR "W" POS THEN NEG END UVAL
  317.      END
  318.      - 0 RND
  319.      SWAP DUP 4 PICK SWAP /
  320.      IFERR '1_h' CONVERT THEN DROP UVAL '1_h' \->UNIT END
  321.      DUP 7 ROLL * UVAL DUP 'totfuel' STO+
  322.      IF DUP 99 > THEN 0 RND \->STR ELSE 1 FIX \->STR STD END
  323.      IF DUP SIZE 4 < THEN " " SWAP + END
  324.      SWAP UVAL DUP 'tottime' STO+
  325.      \->HMS 2 FIX \->STR 2 ":" REPL STD
  326.      ROT 0 RND DUP \->STR SWAP
  327.      IF TYPE 13 == THEN "'" STRIP DUP "_" POS " " REPL END
  328.      WHILE DUP SIZE 8 < REPEAT " " SWAP + END
  329.      5 ROLL DUP 'totdist' STO+
  330.      UVAL
  331.      1 6 FOR k
  332.        PICT
  333.        { # 46d # 60d # 97d # 114d # 30d # 16d } k GET
  334.        9 j 1 - 6 * + R\->B
  335.        2 \->LIST
  336.        ROT \->STR
  337.        IF DUP SIZE 3 < THEN " " SWAP + END
  338.        1 \->GROB REPL
  339.      NEXT
  340.     NEXT
  341.     PICT { # 42d # 59d }
  342.     totdist UVAL 0 RND \->STR
  343.     WHILE DUP SIZE 4 < REPEAT " " SWAP + END
  344.     1 \->GROB REPL
  345.     PICT { # 97d # 59d }
  346.     tottime 2 FIX \->HMS \->STR STD
  347.     2 ":" REPL 1 \->GROB REPL
  348.     PICT { # 114d # 59d }
  349.     totfuel
  350.     IF DUP 99 > THEN 0 RND ELSE 1 FIX END
  351.     \->STR
  352.     IF DUP SIZE 4 < THEN " " SWAP + END
  353.     1 \->GROB REPL
  354.     { # 0d # 0d } PVIEW
  355.     IFERR 0 WAIT THEN END DROP
  356.   \>>
  357.   STOF 2 MENU
  358. \>>
  359.   W&B
  360.     \<<
  361.       RCLF
  362.       IF 'PLANES' VTYPE -1 SAME THEN ADDPLANE END
  363.       DO
  364.         DO
  365.           1 WBMENU CHOOSE
  366.           PLANES SWAP GET LIST\-> 1 - SWAP DROP
  367.         UNTIL
  368.         END
  369.         DUP TYPE 5 SAME
  370.         1
  371.         \<< EVAL 0 \>>
  372.         IFTE
  373.       UNTIL
  374.       END
  375.       UNITMENU TMENU
  376.       LIST\-> \-> num
  377.       \<<
  378.         0 0
  379.         1 num FOR j
  380.           num j - 3 + ROLL WBIN
  381.           { '1_in' '1_cm' } 10 FS? 1 + GET CONVERT UVAL SWAP
  382.           { '1_lb' '1_kg' } 10 FS? 1 + GET CONVERT UVAL
  383.           DUP ROT * ROT + ROT ROT + SWAP
  384.         NEXT
  385.         { '1_in*lb' '1_cm*kg' } 10 FS? 1 + GET \->UNIT
  386.         1 RND "Moment" \->TAG SWAP
  387.         { '1_lb' '1_kg' } 10 FS? 1 + GET \->UNIT
  388.         0 RND "Weight" \->TAG SWAP
  389.       \>>
  390.       2 MENU 3 ROLL
  391.       IF DUP SIZE THEN CGGRAPH ELSE DROP END
  392.       ROT STOF
  393.     \>>
  394.   WIND
  395.     \<<
  396.       RCLF -15 CF -16 SF
  397.       { { "MPH" "_mph" } { "KNOT" "_knot" } "" "" "" { "KPH" "_kph" } } TMENU
  398.       "Enter True Course:" "" INPUT OBJ\->
  399.       "Enter Ground Speed" "" INPUT OBJ\->
  400.       DUP UVAL ROT \->V2
  401.       "Enter True Heading" "" INPUT OBJ\->
  402.       "Enter True Airspeed" "" INPUT OBJ\->
  403.       IF DUP TYPE 13 ==
  404.       THEN
  405.         4 ROLL
  406.         IF DUP TYPE 13 == THEN CONVERT ELSE DROP END
  407.         DUP UVAL ROT
  408.       ELSE 4 ROLL SWAP ROT
  409.       END
  410.       \->V2
  411.       SWAP 3 ROLLD - NEG V\->
  412.       IF DUP 0 < THEN 360 + END
  413.       0 RND "Winds From" \->TAG
  414.       SWAP 0 RND ROT
  415.       IFERR \->UNIT THEN DROP END
  416.       "Wind Speed" \->TAG
  417.       ROT STOF 2 MENU
  418.     \>>
  419.   DALT
  420.     \<<
  421.       RCLF
  422.       { { "ft" "_ft" } { "m" "_m" } "" ""
  423.         { "\^oF" "_\^oF" } { "\^oC" "_\^oC" } } TMENU
  424.       DO
  425.         "Enter:"
  426.         ":Air Temp.: _\^oF\010:Press. Alt.: _ft"
  427.         IF 10 FS? THEN 15 "C" REPL 32 "m " REPL END
  428.         { 1 13 } 2 \->LIST INPUT
  429.       UNTIL
  430.         IF DUP " _" POS
  431.         THEN 1400 .08 BEEP DROP 0
  432.         ELSE
  433.           OBJ\->
  434.           IF DUP '11_km' >
  435.           THEN
  436.             1400 .08 BEEP "Alt. < "
  437.             { "36000 ft" "11000 m" } 10 FS? 1 + GET + " only.\010 "  +
  438.             1 DISP 1 WAIT DROP2 0
  439.           ELSE 1
  440.           END
  441.         END
  442.       END
  443.       '1_ft' CONVERT UVAL .0019812 * NEG 288.15 + 5.255876 ^
  444.       SWAP
  445.       '1_K' CONVERT UVAL / 4.255876 INV ^ NEG 288.15 + .0019812 /
  446.       '1_ft' \->UNIT
  447.       IF 10 FS? THEN '1_m' CONVERT END
  448.       0 RND "Den. Alt" \->TAG
  449.       2 MENU SWAP STOF
  450.     \>>
  451.   DISTANCE
  452.     \<<
  453.       RCLF DEG { } TMENU
  454.       1 2 FOR j
  455.         DO
  456.           { "Enter Lat. (N) and\010Long. (W) of origin"
  457.             "Enter Lat. and Long.\010of destination" }
  458.           j GET { ":Lat: \010:Long: " 7 } INPUT
  459.         UNTIL
  460.           IF DUP DUP SIZE SWAP 10 CHR POS - 7 >
  461.           THEN 1
  462.           ELSE DROP 1400 .08 BEEP 0
  463.           END
  464.         END
  465.         OBJ\->
  466.       NEXT
  467.       1 4 START
  468.         4 ROLL HMS\->
  469.       NEXT
  470.       \-> lat1 long1 lat2 long2
  471.       \<<
  472.         lat1 SIN lat2 SIN * lat1 COS lat2 COS * long1 long2 - COS * + ACOS 60 *
  473.         DUP 60 / SIN INV long1 long2 - SIN * lat2 COS * ASIN
  474.         IF lat2 lat1 <
  475.         THEN 180 SWAP -
  476.         ELSE IF DUP 0 < THEN 360 + END
  477.         END
  478.       \>>
  479.       SWAP
  480.       '1_nmi' \->UNIT
  481.       IF 10 FS? THEN '1_km' CONVERT END
  482.       0 RND "Distance" \->TAG
  483.       SWAP 0 RND "True Heading" \->TAG
  484.       ROT STOF 2 MENU
  485.     \>>
  486.   CWIND
  487.     \<<
  488.       RCLF -15 CF -16 SF DEG { } TMENU
  489.       "DUMMY"
  490.       DO DROP "Enter runway heading" "" INPUT
  491.       UNTIL DUP SIZE
  492.       END
  493.       OBJ\->
  494.       "DUMMY"
  495.       DO
  496.         DROP
  497.         "Enter wind direction\010and speed"
  498.         { ":WD: \010:WS: " 6 } INPUT
  499.       UNTIL DUP DUP SIZE SWAP 10 CHR POS - 5 >
  500.       END
  501.       OBJ\-> DTAG UVAL
  502.       SWAP DTAG 180 + \->V2
  503.       SWAP DUP 90 + 1 SWAP \->V2
  504.       3 PICK DOT 0 RND
  505.       IF DUP 0 < THEN NEG "Right" ELSE "Left" END
  506.       \->TAG
  507.       3 ROLLD 1 SWAP \->V2 DOT 0 RND
  508.       IF DUP 0 < THEN NEG "Headwind" ELSE "Tailwind" END
  509.       \->TAG ROT STOF 2 MENU
  510.     \>>
  511.   PAUSE
  512.     \<< IFERR -1 WAIT THEN END DROP \>>
  513.   TRAP
  514.     \<<
  515.       DEPTH 1 - 'S.DEPTH' STO
  516.       IFERR EVAL
  517.       THEN
  518.         DEPTH 1 - S.DEPTH - DROPN
  519.         STOF
  520.         IF ERRN # 0d \=/
  521.         THEN
  522.           1400 .08 BEEP
  523.           "Error:\010" ERRM + CLLCD 1 DISP 2 WAIT
  524.         END
  525.         0
  526.       ELSE 1
  527.       END
  528.       'S.DEPTH' PURGE
  529.     \>>
  530.   MAKEMENU
  531.     \<<
  532.       ERASE
  533.       PICT { # 0d # 8d } { # 130d # 8d } LINE
  534.       { # 2d # 0d }
  535.       "Enter Title,\01021 char max" { \Ga } INPUT 2 \->GROB
  536.       REPL
  537.       1 10 FOR j
  538.         PICT
  539.         IF j 5 >
  540.         THEN # 70d # 10d j 5 - * # 1d +
  541.         ELSE # 2d # 10d j * # 1d +
  542.         END
  543.         2 \->LIST
  544.         DO
  545.           "Enter Item " j \->STR + "\010(10 letter max.)" +
  546.           { \Ga } INPUT
  547.         UNTIL
  548.           IF DUP SIZE 11 < THEN 1 ELSE DROP 0 1400 .08 BEEP END
  549.         END
  550.       2 \->GROB REPL
  551.       NEXT
  552.       PICT RCL { # 0d # 0d } PVIEW
  553.       IFERR 0 WAIT THEN END DROP
  554.     \>>
  555.   ADDPLANE
  556.     \<<
  557.       DO "Add or Delete? (A/D)" { "" \Ga } INPUT
  558.       UNTIL DUP "AaDd" SWAP POS
  559.       END
  560.       \-> choice
  561.       \<<
  562.         IF 'PLANES' VTYPE -1 >
  563.         THEN PLANES
  564.         ELSE
  565.           { "" } DUP DUP2 DUP2 DUP2 DUP { { } ADDPLANE "Add/Delete" }
  566.           10 \->LIST
  567.         END
  568.         CASE
  569.           "Aa" choice POS
  570.         THEN
  571.           DUP EVAL
  572.           11 ROLL
  573.           1 \-> n
  574.           \<<
  575.             DO
  576.               12 n - ROLL LIST\->
  577.               IF 1 SAME THEN DROP 1 ELSE 3 DROPN 'n' INCR DROP 0 END
  578.               IF n 10 SAME THEN DROP2 "All slots are full" DOERR END
  579.             UNTIL
  580.             END
  581.             n
  582.             ADDGRAPH
  583.             "Enter # of stations" "" INPUT OBJ\->
  584.             \-> l
  585.             \<<
  586.               1 l FOR j
  587.                 "Enter station " j \->STR + "\010" +
  588.                 \-> sta
  589.                 \<<
  590.                   DESCMENU TMENU
  591.                   sta "Description" + "" INPUT
  592.                   UNITMENU TMENU
  593.                   sta "Default Weight" + "" INPUT
  594.                   sta "Default Moment Arm" + "" INPUT
  595.                 \>>
  596.                 3 \->LIST
  597.               NEXT
  598.               l \->LIST
  599.               PLMENU TMENU
  600.               DO
  601.                 "Enter plane N-number/\010 type. (10 letters max)"
  602.                 "" INPUT
  603.                 DUP SIZE
  604.                 IF 10 \<= THEN 1 ELSE DROP 0 END
  605.               UNTIL
  606.               END
  607.               3 \->LIST
  608.               PUT
  609.             \>>
  610.             'PLANES' STO
  611.             10 n - DROPN
  612.           \>>
  613.         END
  614.         "Dd" choice POS
  615.         THEN
  616.           1
  617.           IF 'WBMENU' VTYPE -1 SAME
  618.           THEN # 131d # 64d BLANK
  619.           ELSE WBMENU UPGROB
  620.           END
  621.           { # 2d # 0d } "Delete which aircraft" 2 \->GROB REPL
  622.           { # 70d # 51d } "No change " 2 \->GROB REPL
  623.           IF CHOOSE DUP 10 \=/
  624.           THEN
  625.             SWAP EVAL
  626.             11 ROLL
  627.             NEG 11 + ROLL
  628.             DROP { "" } SWAP
  629.             10 \->LIST
  630.           ELSE DROP
  631.           END
  632.           'PLANES' STO
  633.         END
  634.         END
  635.         TEXT CLLCD "      Updating..." 3 DISP
  636.         PLANES EVAL
  637.         # 131d # 64d BLANK
  638.         70 2 FOR x
  639.           51 11 FOR y
  640.             SWAP
  641.             LIST\-> \-> m
  642.               \<< m ROLLD m 1 - DROPN \>>
  643.             2 \->GROB
  644.             x R\->B y R\->B 2 \->LIST
  645.             SWAP GOR
  646.           -10 STEP
  647.         -68 STEP
  648.         { # 2d # 0d } "Select Aircraft" 2 \->GROB GOR
  649.         PICT SWAP { # 0d # 0d } SWAP REPL
  650.         { # 0d # 8d } { # 130d # 8d } LINE
  651.         PICT RCL PGROB 'WBMENU' STO
  652.       \>>
  653.     \>>
  654.   STRIP
  655.     \<<
  656.       1 \-> delchr stop
  657.       \<<
  658.         WHILE DUP delchr POS 0 \=/
  659.         REPEAT
  660.           DUP delchr POS 1 - 'stop' STO
  661.           DUP 1 stop SUB
  662.           SWAP
  663.           DUP SIZE stop 2 + SWAP SUB +
  664.         END
  665.       \>>
  666.     \>>
  667.   PAD
  668.     \<< WHILE DUP SIZE 21 < REPEAT " " + " " SWAP + END \>>
  669.   CHOOSE
  670.     \<<
  671.       PICT { # 0d # 0d } ROT
  672.       IF DUP TYPE 10 == THEN UPGROB END
  673.       REPL
  674.       { #0d #0d } PVIEW
  675.       R\->B
  676.       DUP # 6d <
  677.       # 1d
  678.       # 69d
  679.       IFTE
  680.       SWAP 10 *
  681.       IF DUP # 50d > THEN # 50d - END
  682.       \-> x y
  683.       \<<
  684.         DO
  685.           PICT
  686.           x y 2 \->LIST
  687.           DUP 3 ROLLD CURSOR GXOR
  688.           DO
  689.             0 WAIT IP
  690.             { 34 36 25 35 51 } SWAP POS DUP
  691.             IF THEN DUP END
  692.           UNTIL
  693.           END
  694.           {
  695.           \<< x # 68d XOR 'x' STO 0 \>>
  696.           \<< x # 68d XOR 'x' STO 0 \>>
  697.           \<<
  698.             IF y # 10d == THEN # 50d 'y' STO ELSE 'y' # 10d STO- END 0
  699.           \>>
  700.           \<<
  701.             IF y # 50d == THEN # 10d 'y' STO ELSE 'y' # 10d STO+ END 0
  702.           \>>
  703.           1 }
  704.           SWAP GET EVAL SWAP
  705.           PICT SWAP CURSOR GXOR
  706.         UNTIL
  707.         END
  708.         y B\->R 10 / x B\->R 69 / IP 5 * +
  709.       \>>
  710.     \>>
  711.   ADDGRAPH
  712.     \<<
  713.       "Enter # of points in\010c.g. graph (0 for no\010graph):"
  714.       "" INPUT OBJ\->
  715.       \-> num
  716.       \<<
  717.         IF num 0 \<=
  718.         THEN { }
  719.         ELSE
  720.         0 1000 0 1000000
  721.         \-> mmax mmin wmax wmin
  722.         \<<
  723.           DO
  724.             ERASE
  725.             1 num FOR j
  726.               "Enter point " j \->STR + " in form\010{mom/1000 weight}" +
  727.               { "{ }" { 1 2 } } INPUT OBJ\->
  728.               DUP EVAL DUP DUP
  729.               IF wmax > THEN DUP 'wmax' STO END
  730.               IF wmin < THEN DUP 'wmin' STO END
  731.               DROP DUP DUP
  732.               IF mmax > THEN DUP 'mmax' STO END
  733.               IF mmin < THEN DUP 'mmin' STO END
  734.               DROP
  735.             NEXT
  736.             { # 0d # 0d } PVIEW
  737.             1 num 1 - START
  738.               SWAP DUP 3 ROLL
  739.               1 2 START
  740.                 SWAP EVAL wmax wmin 63 SCL # 63d SWAP -
  741.                 SWAP mmax mmin 130 SCL SWAP 2 \->LIST
  742.               NEXT
  743.               LINE
  744.             NEXT
  745.             DROP
  746.           UNTIL
  747.             0 WAIT DROP
  748.             { "YES" "" "" "" "" "NO" } TMENU
  749.             "Is the graph correct?" "" INPUT
  750.             "YES" ==
  751.             1
  752.             \<<
  753.                "Enter # of points"
  754.                "" INPUT OBJ\-> 'num'
  755.                STO 0
  756.             \>>
  757.             IFTE
  758.           END
  759.           PICT RCL PGROB mmax mmin wmax wmin 5 \->LIST
  760.           \>>
  761.         END
  762.       \>>
  763.     \>>
  764.   SCL
  765.     \<<
  766.       \-> valmax valmin factor
  767.       \<< valmin - valmax valmin - / factor * 0 RND R\->B \>>
  768.     \>>
  769.   WBIN
  770.     \<<
  771.       EVAL
  772.       \-> station defwgt defarm
  773.       \<<
  774.         DO
  775.           "Enter " station + "\010weight and moment arm:" +
  776.           ":Weight: " defwgt + "\010:Mom. arm: " + defarm +
  777.           { 1 10 } 2 \->LIST INPUT
  778.         UNTIL
  779.           IF DUP " _" POS THEN 1400 .08 BEEP DROP 0 ELSE 1 END
  780.         END
  781.         OBJ\->
  782.       \>>
  783.     \>>
  784.   CGGRAPH
  785.     \<<
  786.      IFERR
  787.       EVAL
  788.       \-> mmax mmin wmax wmin
  789.       \<<
  790.         UPGROB PICT STO
  791.         DUP2
  792.         { '1000_in*lb' '1000_cm*kg' } 10 FS? 1 + GET
  793.         / mmax mmin 130 SCL SWAP UVAL
  794.         IF DUP wmax \<=
  795.         THEN wmax wmin 63 SCL
  796.         ELSE DROP2 "Aircraft is overweight" DOERR
  797.         END
  798.         # 63d SWAP - 2 \->LIST
  799.         # 1d 0 360 ARC { # 0d # 0d } PVIEW
  800.       \>>
  801.       IFERR 0 WAIT THEN END DROP
  802.       CLLCD
  803.      THEN
  804.       CLLCD 1400 .08 BEEP ERRM 1 DISP 2 WAIT
  805.      END
  806.     \>>
  807.   PGROB
  808. "D9D20ECE8176040CCD20EB1008FB976014713506174147DAF4C2818F2E8FD7B5
  809. 081AF1813581AF0A80824E4A20141818F2913507818F24134142CAD816415271
  810. 517179818F2E13481AF0813713581AF0917115201510D31701601361348B9606
  811. 6601560155090661B67AEB808A73DA6F654031409EBB3136EB134137EB13581A
  812. F11E2808A7A9818FA27BA013313181AF01627F137135EB81AF11E2818FA28AA8
  813. 1CE7A70137135EBCE81AF0981AF1913596B01AEB8089714D1721361348B56066
  814. 1F81AF1A81AF0806133130EA34A10008A6501608F176618F2D760071458DF192
  815. 081AF1113314D13101B21300239"
  816.   UPGROB
  817. "D9D20ECE81D5040CCD204F0008FB97601471350617414334510008A6018F2D76
  818. 08D7AC8117414381AF0117414381AF008F3B51113681AF0813507818F2413414
  819. 2CAD816E14A1611361348BD46808770431F09EAF11567155716F17F81868F31F
  820. 09E65E15601550160170A6C5EE6DAF8084715601550170A6C55F160609F81AF1
  821. 08D1FF11B2130D903"
  822.   PLANES
  823. "47A2047A2047A20E4A20FE3000400038000390008A8F007490006A8000339010
  824. 81980008490004A80004490003A8000339000CA80008490002A800063901081A
  825. 80001390006A8000C490001A8000239000CB80001390003A8000C390008B8000
  826. 2390006A8010812901081A80004390004B80002390003A80108129000CB80004
  827. 390002B800032901081A80008390006B80004390001B8000329000CB80008390
  828. 003B8000629000848F00768000129000648000258000C2907081000081580002
  829. 29000648000468000129000148000258000C2900085800015800022900044800
  830. 0C58010812900024800025800043900014800015800022900084800085801081
  831. 2900044800045800043900024800035800033905010000858000839000848000
  832. 4580004390004480002580003390602000081480008490501000045800063900
  833. 0848000258000139000448000148000C4905020000C580002490501000025800
  834. 0139000C48000148000C49050200008580002490501000044801081390008480
  835. 0034800044905040000858000249050200004480108149050100002480004490
  836. 6080000814800034905040000448000859050200002480004590501000014800
  837. 034905080000C480008590504000024800065905020000148000159040100084
  838. 8000C5905080000448000259050400003480001590402000848000C69098F003
  839. 6903392020000000000090103392010000000000052503392030000000000003
  840. 20339203000000000000510B213047A2047A20C2A20F000054D6074797C2A203
  841. 100013336363F5C626C2A20310003393E243F596E6B213047A20C2A20B0000F4
  842. 96C6C2A20F00001353F5C626C2A2051000D21333E233F596E6B213047A20C2A2
  843. 012000645756C602155716E647964797F2C2A20D0000F57416C6C2A203100043
  844. 73E283F596E6B213047A20C2A20F00000596C6F647C2A20B0000F5C626C2A20F
  845. 00003373F596E6B213047A20C2A20320006427F6E647020516373756E6765627
  846. C2A20B0000F5C626C2A20F00003373F596E6B213047A20C2A201200025561627
  847. 020516373756E6765627C2A20B0000F5C626C2A20F00007333F596E6B213047A
  848. 20C2A20120002416767616765602162756160213C2A20B0000F5C626C2A20F00
  849. 009353F596E6B213047A20C2A20120002416767616765602162756160223C2A2
  850. 0B0000F5C626C2A2011000132333F596E6B2130B2130C2A209100034563737E6
  851. 1602137323B213047A20C2A2050000B213047A20C2A2050000B213047A20C2A2
  852. 050000B213047A20C2A2050000B213047A20C2A2050000B213047A20C2A20500
  853. 00B213047A20C2A2050000B213047A20C2A2050000B213047A2084E208014444
  854. 405C414E454C2A2091000144646F24456C6564756B2130B21308244"
  855.   FPLAN.GROB
  856. "E4A20EA7000400038000E0100400010040004780D74000010004011E4C9198A4
  857. 39D5000EC00047547D5D54011148409DA455840001200042D6154544011D4840
  858. 9AE45984000D400042557D5D540119484098A451549400098000425415454401
  859. 7E488198A43D84000E6000425475CDD50100400010040004780A040000100040
  860. F9F017010040001004000478091400001000401C040001004000478091400001
  861. 0004018040001004000478091400001000401804000100400047809140000100
  862. 04018040001004000478091400001000401C1400010040004780914000010004
  863. 010040001004000478091400001000401C140001004000478091400001000401
  864. 0140001004000478091400001000401C14000100400047809140000100040140
  865. 40001004000478091400001000401C1400010040004780914000010004010040
  866. 001004000478091400001000401C140001004000478091400001000401014000
  867. 1004000478091400001000401C14000100400047809140000100040101400010
  868. 04000478091400001000401C1400010040004780914000010004010040001004
  869. 0004780914000010004014140001004000478091400001000401414000100400
  870. 0478091400001000401C14000100400047809140000100040101400010040004
  871. 7809140000100040101400010040004780914000010004010040001004000478
  872. 091400001000401C140001004000478091400001000401404000100400047809
  873. 1400001000401C14000100400047809140000100040101400010040004780914
  874. 00001000401C1400010040004780914000010004010040001004000478091400
  875. 0010004018140001004000478091400001000401404000100400047809140000
  876. 1000401C14000100400047809140000100040141400010040004780914000010
  877. 00401C1400010040004780914000010004010040001004000478091400001000
  878. 401C140001004000478091400001000401014000100400047809140000100040
  879. 1804000100400047809140000100040140400010040004780914000010004014
  880. 0400010040004780914000010004010040001004000478091400001000401C14
  881. 00010040004780914000010004014140001004000478091400001000401C1400
  882. 010040004780914000010004014140001004000478091400001000401C140001
  883. 00400047809140000100040100400010040004780A040000100040F9F5070BAA
  884. 6580401000C78A9160000100040555577721610004885810000100040BAA6252
  885. 5111000C78A9160000100040555525271210004885810000100040BAA6252514
  886. 1000C78A91600001000405555272573100048859000001000405332"
  887.   HELP.1
  888. "E4A206950004000380001A0A11D5EAE481900542C40C42CA24EE680A11541A4A
  889. 8AA084454942A22A2A42680A15D5DE4CA9B08456D802E22A2E4E680A1B549A42
  890. 9AA08C694942A22A2A42680A11D5EA4CA9A30546D40CAECEEA4EBA0211D5EAE0
  891. 2960642429D1E80111541A405BA0AA2A654F80215D5DE407FA06E2EE5C1E8011
  892. B549A405DA0AA2AA54F80211D5EA4059606AEA29D5FC0C171EAE0E242108EE24
  893. 250C42CA24EE480C1111A40A2A61042A2A6942A22A2A42480C171DE40E2EE104
  894. EE2EE902E22A2E4E480C1119A4022AA104222AA942A22A2A42480C117EA402EA
  895. 210822EA250CAECEEA4E9A09119830AE46A4E00E6EA2D08DDDD780A1B5500A2A
  896. AA51001AAA651445441680A15D530EEEAA7D00D6AAE518CDD51680A115520A2A
  897. AA69409AAAA51054449680A1159B0AEA6A4E20EAEE2D0C4CDD48A0B175470790
  898. 6EAEE042D0C5D50C4D42580B12D6101B0AAA420A65144540455D2580B1255707
  899. F06AA4E0EE51C5D50C4DC3580B1254101D0AAA420AA514454045553580B12547
  900. 0790AEE4E0A2D04CDD1CC55A6C0B11596042EEE0415962075A12A2D81580A115
  901. BA0A2A240215BA421DA22A655680A155FA0E2AE40255FA407DB2AAE59680B1B5
  902. DA0A2A2402B5DA4215B26BA511580A115960AEE240415962015A12A2DCBA0402
  903. 1777C904051512C904071572C904051512C90405771ADD0C1379CEA042E04321
  904. 718B2D0CC52BEA480C151B24A0A2402551229865145CA84A480C157F4440E240
  905. 2571228BE514DD3944480C151D8440A24025512298A514543A44480C13796440
  906. AE40435721882D0CC5A9449A091217D5DC1CDC54073766537021778091512945
  907. 50445D6055111551051278091712945D1CD45507372253707127809151294550
  908. 445540151445510512780915729CDC144D54015733757057A9A0F02960EE2ABB
  909. 19BA93190E05BA0426BA8A29AA290F07FA04EAABB939A93190E05DA0422A88A2
  910. 9AA290F059604E2A8BA29BAB0B01909"
  911.   HELP.2
  912. "E4A20DF50004000380001A0C139D15D4270A9CE429D50C42CA24EE480C155805
  913. 5DA009A24A654842A22A2A42480C15988C5DB609A44EE5C902E22A2E4E480C15
  914. 194455B409A84AA54842A22A2A42480C13D844D4270A964A29D50CAECEEA4E8A
  915. 0D789CE429D184A18A39929389BB8EE2100008A24A65404DA28A8AA6508A0982
  916. 26100008A44EE5C1CDB28BBBAE538939AEEE100008A84AA54045B28A8AAA528A
  917. 0729D22A100008964A29D145A18ABA929389398EE215A0218B8E024E82E29383
  918. 96CF801198A02A482A6508AAA2F80119AA02E442AE538BB64F80119DA02A422A
  919. A5288AA8F802198E0EA42EE29388AA62FC0C15015960C2A309545A908948558C
  920. D1480B15015BA026B28444DA29445445494580C12755FA02AA38445DB214C544
  921. 5C9C1480B150B5DA022A084C65B29445445494580C15015960C2A009545A9085
  922. D9DD59C18A0618A3998A4302960C6ECC2A2DA80718A8AA8A5505BA02AA222A65
  923. 1980718BBBAAA7507FA026A44AAE51980718A8AADA6505DA02AA886BA5198071
  924. 8ABA98A4305960CAE662A2D4BC0D757170AAB8B0C5560737E64220942A330005
  925. 11509A8829845105551AA630BA6B80000771709BB8318C520735D6EA20FEAA31
  926. 000511109A8809845401559AA22820DA2A0200057710AABB8084530157EAA2A0
  927. 9A2AB16A0B1821C9CC5ABA3BC046E0E6ECD8446580B18614555C29A8820AA20A
  928. AA245D61580B18E1CDDCD39B3940E6E0E6AADC552580B18A14455439A0A80AA2
  929. 02AA255544580B1821445D529AB960AAE02AEC555438A0D73988B18920BB993B
  930. BB4352701D5A2000088A88828A288AAA88AA55DA00B5CA2000088B88B281188A
  931. 9939BA75DB605DDB2000088A888282188AAA0A8A655B4040154B2480C1BABBB1
  932. 8110BBAAB98B4352701D5A36A0D7BABCE00BB38B017032077301DDD46000088A
  933. A2208801888A002501550B58451000088BA2E009318B8B6025075305D9C41000
  934. 088AA2200A01888A40250155014058451480C1BABCE2893188B27072017501D9
  935. 4565A0608BABBA3A90608A29A21A90608A29B21A90608A29821A90608B39835C
  936. D05CEE"
  937.   HELP.3
  938. "E4A20032000400038000DE0019A4EAB40737E64223F80018AAA4AA505551AA6B
  939. 090118BAE4AA70735D6EA21F8011829A4AA601559AA222F8011829A4AB40157E
  940. AA2A1DF0106AF9010AAF901064F9010A4F901064FF0D08B9C042DCD8D52390D0
  941. 88A20A655454D2390D08B920EE5DD84D3390D088A20AA5541553390D08BAC0A2
  942. DC5DC52FF0FF0FF0E100003B9BB40671DDC9957906EAEA476580B1888A885015
  943. B5554445B0AAA4A511680A1989BB70155DDC9845F06AA4A772680A1A8A886015
  944. 15450155D0AAA4A614580B181BABB4067154DDC4790AEE4A4738F0106AF9010A
  945. AF901064F9010A4F901064FF0C00E6A403359ECE590B02AA20555B422590B0E6
  946. A10332F44E590B02AA20552D482590B0EAA40352946EFF0FF0B90616B"
  947.   STMENU
  948. "E4A202940004000380000183081000200E00201090E044001000200110229031
  949. 40E01E877001D3781EC3D803183111150200154201154E80214F11F502001542
  950. 01154D803144101140A001D3A01154D803183E83E87400E40483E44990004490
  951. F9F0074C0C144001040280F0060044044400010E480D74400004024111040044
  952. 04400001011000044E81EC3741193400820446C3E101C2F0045111154280F044
  953. 0001F5544411014511045F111542451974008204544B44110145110C6101E54A
  954. 42154400440C6444110155F0044E83054485F87E0044044E44E10E44168000E8
  955. 900015C0B0C76001800C36590B0404001800444590E040483FC1044483F290F0
  956. C34441900C340411190F04044419004048711190F04048719204044411190F04
  957. 0E04111040E871149010830E0E044400010E810012290E044000010111082229
  958. 0E0446C3E10111E807290E045444110F111D12290E0454441101111902290E0C
  959. 6444110111190A290E044E44E10193E8048F0E0C1000080000E8126803011067
  960. 80E0420000800001112680301104780E044EC3ED11101117680501934C3580E0
  961. 44154180110F11268050F54444580E044F54E801101112680501D7444580E042
  962. 144092E10111A680501504C3580E0C1E44F01010193468040193E4E8000E0900
  963. 04AC0A0C1400200114A8040E0048680A042000204114A804011008680D044687
  964. 702197F83780501546C1580D044440201F541547804015448680D04448328015
  965. 41547804055448680D042404A4015419778050944482580D0C1EC34001971147
  966. 8050697E011901083FF0DB04D19"
  967.   WBMENU
  968. "E4A20302000400038000D083081000200E015801048B80C04400100020011680
  969. 10A8B806140E01E87700191D97D932C1A805183111150200F1134030478C8041
  970. 4F11F5020011114018728B806144101140A00111140144282A806183E83E8740
  971. 0193187187201CA0F9F0074C01083880304C7E29010448804060411190F040E8
  972. 7ED3E0040201190E040150144010401C290E040F93E44E104802290E04410405
  973. 41104801290F083EC3F44E10E80F1FF0FF0FF0FF0FF0FF0FF0FF0FF0480C0830
  974. 140C108108490C04401405200108490E044E97844E01EC1E290F0C7154444111
  975. 19011190F044154244F11F90F1190E0441541421011821290E044E970C1E83E0
  976. 1EFF0DC071C0"
  977.   CURSOR
  978. "E1B20F900090000D3000FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFF1FFFFFFFFFFFF
  979. FFF1FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFF1FFFFFFFFFFFF
  980. FFF1FFFFFFFFFFFFFFF1FFFFFFFFFFFFFFF11664"
  981.   UNITMENU
  982. { { "lb" "_lb" } { "kg" "_kg" } { "in" "_in" } { "cm" "_cm" } { "Gal"
  983. "_Gal" } { "L" "_L" } }
  984.   PLMENU
  985. { "Cessna " "Mooney " "PA-" }
  986.   DESCMENU
  987. { "Empty" "Oil" "Fuel Quantity/" "Pilot" "Front " "Rear " "Passenger"
  988. "Baggage" }
  989.   Gal
  990. '6_lb'
  991.   L
  992. '1.584_lb'
  993.   CST
  994. { '1_Gal' '1_lb' "" "" '1_kg' '1_L' }
  995. END
  996. -- 
  997. Eric Anderson                                     eanderso@caltech.bitnet
  998.  
  999.